/**
 * @param {Array} position = [[114.30, 30.50],[114.30, 40.50]]
 * @param {Array} attr = [{name:"name",type:"string",value:"Point"}]
 * @param {Object} service = {name:"xzd-map",layerId:2}
 *  */
const LINE_STYLE = {
    "Color": 11, //线的颜色
    "LinStyleID": 0, //线型号
    "LinStyleID2": 24,
    "LinWidth": 0.05,//线宽
    "Xscale": 10,
    "Yscale": 10
}
function addLine({
    position,
    attr,
    service,
    docLayer
}) {
    /* 1-1、创建要素的几何信息 */
    /* new ol.geom.LineString() */
    var pointObj = position.map(item => {
        return new Zondy.Object.Point2D(item[0], item[1])
    })
    //构成折线的弧段
    var gArc = new Zondy.Object.Arc(pointObj);
    //构成线的折线
    var gAnyLine = new Zondy.Object.AnyLine([gArc]);
    //设置线要素的几何信息
    var gline = new Zondy.Object.GLine(gAnyLine);
    //设置要素的几何信息
    var fGeom = new Zondy.Object.FeatureGeometry({ LinGeom: [gline] });
    /* 1-2、style */
    //设置添加线要素的图形参数信息
    var clineInfo = new Zondy.Object.CLineInfo(LINE_STYLE);
    //设置要素的图形参数信息
    var graphicInfo = new Zondy.Object.WebGraphicsInfo({
        InfoType: 2,
        LinInfo: clineInfo
    });
    /* 1-3、attr */
    //设置添加线要素的属性信息
    var attValue = attr.map(item => item.value);

    //创建一个线要素
    var newFeature = new Zondy.Object.Feature({
        fGeom: fGeom,
        GraphicInfo: graphicInfo,
        AttValue: attValue
    });
    //设置要素为线要素
    newFeature.setFType(2);
    /* 2、创建要素集FeatureSet 
    映射
     */
    //创建一个要素数据集
    var featureSet = new Zondy.Object.FeatureSet();
    var fldNumber = attr.length; //属性个数
    var fldName = attr.map(item => item.name);
    var fldType = attr.map(item => item.type);
    //创建属性结构设置对象
    var cAttStruct = new Zondy.Object.CAttStruct({
        FldName: fldName,
        FldNumber: fldNumber,
        FldType: fldType
    });
    //设置要素数据集的树形结构
    featureSet.AttStruct = cAttStruct;
    //将添加的线要素添加到属性数据集中
    featureSet.addFeature(newFeature);

    /* 3、调用服务 */
    var editDocFeature = new Zondy.Service.EditDocFeature(service.name, service.layerId, {

    });
    editDocFeature.add(featureSet, onLineSuccess(docLayer));
}
function onLineSuccess(docLayer) {
    return function (result) {
        if (result) {
            alert("添加线要素成功！");
            docLayer.refresh();
        } else {
            alert("添加线要素失败！");
        }
    }

}